package com.study.design.model.behaviorPattern.observer;

import java.util.ArrayList;
import java.util.List;

/**
* @Name: Subject
* @Description: 消息主题
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-2-15 下午10:03:04 
* @Version: V1.0
 */
public class Subject {
	
	private List<Observer> list = new ArrayList<Observer>() ;
	
	/**
	* @Name: registerObserver
	* @Description: 添加观察者
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-15 下午10:04:21
	* @Parameters: @param observer
	* @Return: void
	 */
	public void registerObserver(Observer observer) {
		list.add(observer) ;
	}
	
	/**
	* @Name: removeObserver
	* @Description: 移除观察者
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-15 下午10:04:36
	* @Parameters: @param observer
	* @Return: void
	 */
	public void removeObserver(Observer observer) {
		list.remove(observer) ;
	}
	
	/**
	* @Name: notifyAllObservers
	* @Description: 通知所有的观察者状态的更新
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-15 下午10:05:23
	* @Parameters: 
	* @Return: void
	 */
	public void notifyAllObservers() {
		for (Observer observer : list) {
			observer.update(this) ;
		}
	}

}
